package com.iking.housekeeping.dao.servicestaff;

import java.util.List;

import com.iking.housekeeping.httpbean.elderlyreq.HttpElderlyReq;
import com.iking.housekeeping.httpbean.elderlyres.HttpElderlyRes;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.github.pagehelper.Page;
import com.iking.housekeeping.entity.servicestaff.ServiceStaff;
import com.iking.housekeeping.httpbean.servicestaff.reqbean.DetailsServiceStaff;
import com.iking.housekeeping.httpbean.servicestaff.reqbean.HttpGiveElderly;
import com.iking.housekeeping.httpbean.servicestaff.reqbean.SelectServiceRes;
import com.iking.housekeeping.httpbean.servicestaff.reqbean.StaffBySelect;
/**
 * 服务人员信息
 * 
 * @author: gf
 * @date: 2018年4月19日 上午9:46:34
 */
@Mapper
public interface ServiceStaffMapper {
	
	/**
	 * 根据id删除服务人员信息
	 * @param fId
	 * @return
	 */
    int deleteByPrimaryKey(String fId);
    
    /**
     * 添加服务人员信息
     * @param record
     * @return
     */
    int insert(ServiceStaff record);
    
    /**
     * 添加及服务人员信息
     * @param record
     * @return
     */
    int insertSelective(ServiceStaff record);
    /**
     * 根据id查看服务人员信息
     * @param fId
     * @return
     */
    ServiceStaff selectByPrimaryKey(String fId);
    
    /**
     * 更新服务人员信息
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(ServiceStaff record);
    
    /**
     * 更新服务人员信息
     * @param record
     * @return
     */
    int updateByPrimaryKey(ServiceStaff record);
    
    /**
     * 	删除服务人员
     *  @param fId
     *  @return int
     *  @author gf
     */
    int updateByFidPrimaryKey(String fId);
    
    /**
     * 	批量删除服务人员
     *  @param list
     *  @return int
     *  @author gf
     */
    int deleteBatch(List<String> list);
    
    /**
     * 	查询所有服务人员
     *  @return List<ServiceStaff>
     *  @author gf
     */
    Page<ServiceStaff> selectAll();
    
    /**
     * 	通过单个属性查询服务人员
     *  @param req
     *  @return ServiceStaff
     *  @author gf
     */
    ServiceStaff selectRepeat(ServiceStaff req) ;
    
    
    /**
     * 	分页显示服务人员信息
     *  @return SelectServiceRes
     *  @author gf
     */
    Page<SelectServiceRes> selectServiceStaff(StaffBySelect staffBySelect);


    /**
     * 	通过服务人员id查询详情
     *  @return SelectServiceRes
     *  @author gf
     */
    DetailsServiceStaff selectById(String fId);
    
    /**
     * 服务人员分配
     *  @return List<HttpGiveElderly> 服务人员
     *  @author gf
     */
    List<HttpGiveElderly> giveServiceStaff();
    
    /**
     * 查询所有服务状态为未服务的人员
     * @param fId
     * @return
     */
    List<String> selectStaffBySelectList(@Param("fId") List<String> fId);
    
    List<ServiceStaff> selectStaffByFId(List<String> fIds);
    //查询所有的服务人员
	List<ServiceStaff> selectAllList();

    /**
     * 根据老人所在区域和服务类型分配服务人员
     * @param record
     * @return  List<HttpGiveElderly>
     */
//    List<ServiceStaff> giveServiceStaffByIDAndType(StaffBySelect record);

    /**
     * 根据老人所在区域和服务类型分配服务人员
     * @param record
     * @return  List<HttpGiveElderly>
     */
    List<HttpElderlyReq> selectElderlyInfo (HttpElderlyReq record);
}